package com.iwhalecloud.bss.kite.cucc.client.api.account;

import com.github.pagehelper.PageInfo;
import com.iwhalecloud.bss.kite.cucc.client.dto.account.AccountDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.account.QryCustAccountReq;
import com.iwhalecloud.bss.kite.cucc.client.dto.cust.CuccContextCustDTO;

import java.util.List;
import java.util.Map;

public interface ILocalAccountService {

    PageInfo<QryCustAccountReq> listCustAccountInfo(String custId, String payName, String acountType,
        String acctId, String cbssAcountCode, String provinceAcctId, String payCompactNo, String provinceCode, String eparchyCode,
                                                    String userCode,int pageNum, int pageSize);

    List<AccountDTO> listAccountInfoBySerialNumber(String serialNumber, String authorization);

    Map<String, Object> addAccount(CuccContextCustDTO custDto, String payName, String accountType, String accountCycle,
                                   String payCycle, String acctContactName, String acctContactPhone, String acctContacatEmail,
                                   String acctContactAddr, String bindPostAddr, String isCenterDirectSign,
                                   String billType, String billCycle, String billContent, String billEmail,
                                   String faxNumber, String recipientName, String billAddress, String postCode, String remark,
                                   String bankAcctName, String bankAcctNo, String bankCode, String superBankCode, String limitMode, String limitMoney,
                                   String agreementNo, String fdContactName, String fdContactPhone);


    Map<String,Object> modCustAccount(CuccContextCustDTO custDto, String payName, String accountType, String accountCycle,
                                      String payCycle, String acctContactName, String acctContactPhone, String acctContacatEmail,
                                      String acctContactAddr, String bindPostAddr, String isCenterDirectSign,
                                      String billType,String billCycle,String billContent,String billEmail,
                                      String faxNumber,String recipientName,String billAddress,String postCode,String remark,
                                      String acctId, String cust_id,String group_id, String province_code, String eparchy_code,
                                      String bankAcctName, String bankAcctNo,String bankCode, String superBankCode, String limitMode, String limitMoney, String agreementNo,
                                      String fdContactName, String fdContactPhone);

    PageInfo<QryCustAccountReq> listCustAccountInfoBySign(String custId, String payName, String acountType,
                                                    String acctId, String cbssAcountCode, String provinceAcctId, String payCompactNo, String provinceCode, String eparchyCode,
                                                    String userCode, String sign, int pageNum, int pageSize);

    /**
     * 国际客户账户信息查询（暂时不用，先保留）
     * @param custId
     * @param payName
     * @param acountType
     * @param acctId
     * @param cbssAcountCode
     * @param provinceAcctId
     * @param payCompactNo
     * @param provinceCode
     * @param eparchyCode
     * @param o
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<QryCustAccountReq> listNationalCustAccountInfo(String custId, String payName, String acountType, String acctId, String cbssAcountCode, String provinceAcctId, String payCompactNo, String provinceCode, String eparchyCode, String userCode, int pageNum, int pageSize);

    /**
     * 国际客户账户同步接口（暂时不用，先保留）
     * @param custDTO
     * @param payName
     * @param accountType
     * @param accountCycle
     * @param payCycle
     * @param linkName
     * @param linkPhone
     * @param linkEmail
     * @param linkAddress
     * @param postBill
     * @param isCenterDirectSign
     * @param billType
     * @param billCycle
     * @param billContent
     * @param billEmail
     * @param faxNumber
     * @param recipientName
     * @param billAddress
     * @param postcode
     * @param remark
     * @param bankAcctName
     * @param bankAcctNo
     * @param bankCode
     * @param superBankCode
     * @param limitMode
     * @param limitMoney
     * @param agreementNo
     * @param fdContactName
     * @param fdContactPhone
     * @return
     */
    Map<String, Object> sysncNationAccount(CuccContextCustDTO custDTO, String payName, String accountType, String accountCycle, String payCycle, String linkName, String linkPhone, String linkEmail, String linkAddress, String postBill, String isCenterDirectSign, String billType, String billCycle, String billContent, String billEmail, String faxNumber, String recipientName, String billAddress, String postcode, String remark, String bankAcctName, String bankAcctNo, String bankCode, String superBankCode, String limitMode, String limitMoney, String agreementNo, String fdContactName, String fdContactPhone, String state, String fdContactEmail, String currency, String postLang, String accDetailType);
}
